#ifndef _WMI_CONSTANTS_H
#define _WMI_CONSTANTS_H

/******************************************************************************
** @file	WMI_Constants.h
** @author	
** @date	Jul 28, 2010
**
** @desc	This class List all the constants used all around the system.
*			
**
******************************************************************************/

#include <string>

using namespace std;

/**
* Common Constants
*/
const wstring CAPTION = L"Caption";
const wstring DESCRIPTION = L"Description";
const wstring NAME = L"Name";
const wstring INSTALL_DATE = L"InstallDate";
const wstring STATUS = L"Status";

/**
* WMI_IConnection creation constants
*/
const wstring PC_USER = L"Administrator";
const wstring PC_PASSWORD = L"administrator";
const wstring PC_IP_REMOTE_HOST = L"192.168.0.5";
const wstring PC_NAMESPACE = L"\\root\\cimv2";
const wstring PC_NAMESPACE_REG = L"\\root\\default";
const wstring PC_EMPTY_NAMESPACE = L"";
const wstring PC_LOCAL_USER = L"";
const wstring PC_LOCAL_PASSWORD = L"";

/**
* Constants for WMI_Share class
*/
const wstring WACCESS_MASK = L"AccessMask";
const wstring ALLOW_MAXIMUN = L"AllowMaximum";
const wstring MAXIMUN_ALLOWED = L"MaximumAllowed";
const wstring PATH = L"Path";
const wstring TYPE = L"Type";
const wstring DISK_DRIVE = L"Disk Drive";
const wstring PRINT_QUEUE = L"Print Queue";
const wstring DEVICE = L"Device";
const wstring IPC = L"IPC";
const wstring DISK_DRIVE_ADMIN = L"Disk Drive Admin";
const wstring PRINT_QUEUE_ADMIN = L"Print Queue Admin";
const wstring DEVICE_ADMIN = L"Device Admin";
const wstring IPC_ADMIN = L"IPC Admin";

/*
* Constants for Process class
*/
const wstring COMMAND_LINE = L"CommandLine";
const wstring CREATION_CLASS_NAME = L"CreationClassName";
const wstring CREATION_DATE = L"CreationDate";
const wstring CS_CREATION_CLASS_NAME = L"CSCreationClassName";
const wstring CS_NAME = L"CSName";
const wstring EXECUTABLE_PATH = L"ExecutablePath";
const wstring EXECUTION_STATE_PROCESS = L"ExecutionState";
const wstring HANDLE_PROCESS = L"Handle";
const wstring HANDLE_COUNT = L"HandleCount";
const wstring KERNEL_MODE_TIME = L"KernelModeTime";
const wstring MAXIMUM_WORKING_SET_SIZE = L"MaximumWorkingSetSize";
const wstring MINIMUM_WORKING_SET_SIZE = L"MinimumWorkingSetSize";
const wstring OS_CREATION_CLASS_NAME = L"OSCreationClassName";
const wstring OS_NAME = L"OSName";
const wstring OTHER_OPERATION_COUNT = L"OtherOperationCount";
const wstring OTHER_TRANSFER_COUNT = L"OtherTransferCount";
const wstring PAGE_FAULTS = L"PageFaults";
const wstring PAGE_FILE_USAGE = L"PageFileUsage";
const wstring PARENT_PROCESS_ID = L"ParentProcessId";
const wstring PEAK_PAGE_FILE_USAGE = L"PeakPageFileUsage";
const wstring PEAK_VIRTUAL_SIZE = L"PeakVirtualSize";
const wstring PEAK_WORKING_SET_SIZE = L"PeakWorkingSetSize";
const wstring PRIORITY = L"Priority";
const wstring PRIVATE_PAGE_COUNT = L"PrivatePageCount";
const wstring PROCESS_ID = L"ProcessId";
const wstring QUOTA_NON_PAGED_POOL_USAGE = L"QuotaNonPagedPoolUsage";
const wstring QUOTA_PAGED_POOL_USAGE = L"QuotaPagedPoolUsage";
const wstring QUOTA_PEAK_NON_PAGED_POOL_USAGE = L"QuotaPeakNonPagedPoolUsage";
const wstring QUOTA_PEAK_PAGED_POOL_USAGE = L"QuotaPeakPagedPoolUsage";
const wstring READ_OPERATION_COUNT = L"ReadOperationCount";
const wstring READ_TRANFER_COUNT = L"ReadTransferCount";
const wstring SESSION_ID = L"SessionId";
const wstring TERMINATION_DATE = L"TerminationDate";
const wstring THREAD_COUNT = L"ThreadCount";
const wstring USER_MODE_TIME = L"UserModeTime";
const wstring VIRTUAL_SIZE = L"VirtualSize";
const wstring WINDOWS_VERSION = L"WindowsVersion";
const wstring WORKING_SET_SIZE = L"WorkingSetSize";
const wstring WRITE_OPERATION_COUNT = L"WriteOperationCount";
const wstring WRITE_TRANFER_COUNT = L"WriteTransferCount";

/*
* Constants for WMI_FileDirectory Class
*/
const wstring ARCHIVE = L"Archive";
const wstring COMPRESSED = L"Compressed";
const wstring COMPRESSION_METHOD = L"CompressionMethod";
const wstring DRIVE = L"Drive";
const wstring EIGHT_DOT_THREE_FILE_NAME = L"EightDotThreeFileName";
const wstring ENCRYPTED = L"Encrypted";
const wstring ENCRYPTION_METHOD = L"EncryptionMethod";
const wstring EXTENSION = L"Extension";
const wstring FILE_NAME = L"FileName";
const wstring FILE_SIZE = L"FileSize";
const wstring FILE_TYPE = L"FileType";
const wstring FS_CREATION_CLASS_NAME = L"FSCreationClassName";
const wstring FS_NAME = L"FSName";
const wstring HIDDEN = L"Hidden";
const wstring IN_USE_COUNT = L"InUseCount";
const wstring LAST_ACCESSED = L"LastAccessed";
const wstring LAST_MODIFIED = L"LastModified";
const wstring MANUFACTURER = L"Manufacturer";
const wstring READABLE = L"Readable";
const wstring SYSTEM = L"System";
const wstring VERSION = L"Version";
const wstring WRITEABLE = L"Writeable";

/**
* WMI_Disk constants
*/
const wstring FILESYSTEM = L"FileSystem";


/*
* Units
*/
const wstring KILOBYTES = L"KiloBytes";
const wstring BYTES = L"Bytes";
const wstring NANOSECONDS = L"Nanoseconds";

/*
* Registry Constants
*/
const wstring NOTLOADCLASS = L"Could not Load class:'";
const wstring NOTHAVECHILDREN = L"Not have children";
const wstring NOTRETURNMETHOD = L"Could not return method.'";
const wstring NOTCREATEINSTANCE= L"Could not create instance of method.'";
const wstring NOTPUTHDEFKEY = L"Could not put.'hDefKey'";
const wstring NOTPUTSSUBKEYNAME = L"Could not put.'sSubKeyName'";
const wstring NOTPUTSVALUENAME = L"Could not put.'sValueName'";
const wstring NOTEXECUTEMETHOD = L"Could not Execut Method.'";
const wstring NOTGETSVALUE = L"Could not get sValue Param.'";
const wstring NOTGETSNAMES = L"Could not get sNames Param.'";
const wstring NOTGETUBOUNDARRAY = L"Not get UBound items of SafeArray";
const wstring NOTGETLBOUNDARRAY = L"Not get LBound items of SafeArray";
const wstring SVALUE = L"sValue";
const wstring GETSTRINGVALUE = L"GetStringValue";
const wstring SVALUENAME = L"sValueName";
const wstring SSUBKEYNAME = L"sSubKeyName";
const wstring HDEFKEY = L"hDefKey";
const wstring SNAMES = L"sNames";
const wstring ENUMVALUES = L"EnumValues";
const wstring ENUMKEY = L"EnumKey";
const wstring STDREGPROV = L"StdRegProv";
const wstring CONST_HKEY_LOCAL = L"HKEY_LOCAL_MACHINE";
const wstring CONST_HKEY_CLASSES_ROOT = L"HKEY_CLASSES_ROOT";
const wstring CONST_HKEY_CURRENT_USER = L"HKEY_CURRENT_USER";
const wstring CONST_HKEY_USERS = L"HKEY_USERS";
const wstring CONST_HKEY_CURRENT_CONFIG = L"HKEY_CURRENT_CONFIG";
const wstring CONST_HKEY_DYN_DATA = L"HKEY_DYN_DATA";
const wstring HKCR = L"HKCR";
const wstring HKCU = L"HKCU";
const wstring HKLM = L"HKLM";
const wstring HKU = L"HKU";
const wstring HKCF = L"HKCF";
const wstring HKDD = L"HKDD";
const int STDKEYS = 5;

/**
* Share test constants
*/
const wstring C_SHARE = L"C$";
const wstring IPC_SHARE = L"IPC$";
const wstring ADMIN_SHARE = L"ADMIN$";

/**
* File directory test constants
*/
const wstring C_DIR = L"C:\\";
const wstring DELIMITER = L"\\"; 
const wstring DOUBLE_SLASH = L"\\\\";
const wstring FINAL_DOUBLE_SLASH = L"\\\\'";

/**
* Registry and registry manager unit tests
*/
const wstring EMPTY_SUBKEY = L"";
const wstring HW = L"HARDWARE";
const wstring EMPTY_PATH = L"";
const wstring VALUE_NAME = L"";
const wstring EMPTY_TYPE = L"";
const wstring DEFAULT = L"Default";
const wstring REGSZ = L"REG_SZ";
const wchar_t BACKSLASH = L'\\';
const wstring WSBACKSLASH = L"\\";

/**
* WMI_IConnection and manager constants
*/
const wstring WQL = L"WQL";
const wstring QUERY_FAILED = L"Query for operating system name failed.";
const wstring PROXY_NOT_SET = L"Could not set proxy blanket on enumerator.";
const wstring IWBEMLOCATOR_CREATION = L"Failed to create IWbemLocator object.";
const wstring NOT_CONNECT = L"Could not connect.";
const wstring COM_LIBRARY = L"Failed to initialize COM library.";
const wstring INIT_SECURITY = L"Failed to initialize security.";
const wstring CON_REMOTE = L"conected remote!";
const wstring CONNECT_REMOTE = L"conecting remote...";
const wstring AUX_PC_NAME = L".";
const wstring CONCAT = L"\\\\%s%s";
const wstring CONCAT1 = L"%s\\%s";
const wstring W_OK = L"Operation successful";

/**
* WMI_Utils constants
*/
const wstring OS = L"Os:";
const char OR = '|';
const wstring QUOTE = L"'";

#endif